package com.tree.backend.service;

import com.tree.backend.entity.pojo.BudgetConfig;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.tree.backend.entity.dto.budgetConfig.BudgetConfigDTO;
import com.tree.backend.entity.dto.budgetConfig.BudgetConfigQueryDTO;
import com.tree.backend.entity.vo.budgetConfig.BudgetAnalysisVO;
import com.tree.backend.entity.vo.budgetConfig.BudgetConfigVO;

/**
 * <p>
 * 部门预算配置表 服务类
 * </p>
 */
public interface IBudgetConfigService extends IService<BudgetConfig> {
    
    /**
     * 获取预算配置列表
     * @param queryDTO 查询参数
     * @return 分页结果
     */
    IPage<BudgetConfigVO> getBudgetConfigs(BudgetConfigQueryDTO queryDTO);
    
    /**
     * 根据ID获取预算配置详情
     * @param id 预算配置ID
     * @return 预算配置详情
     */
    BudgetConfigVO getBudgetConfigById(Long id);
    
    /**
     * 新增预算配置
     * @param budgetConfigDTO 预算配置数据
     * @return 创建的预算配置
     */
    BudgetConfigVO createBudgetConfig(BudgetConfigDTO budgetConfigDTO);
    
    /**
     * 更新预算配置
     * @param id 预算配置ID
     * @param budgetConfigDTO 预算配置数据
     * @return 更新后的预算配置
     */
    BudgetConfigVO updateBudgetConfig(Long id, BudgetConfigDTO budgetConfigDTO);
    
    /**
     * 删除预算配置
     * @param id 预算配置ID
     */
    void deleteBudgetConfig(Long id);
    
    /**
     * 获取预算分析数据
     * @param year 年份
     * @return 预算分析数据
     */
    BudgetAnalysisVO getBudgetAnalysis(Integer year);
}
